/*
 *
 *
 */

package DigimonAdventure.Database;

import javax.swing.ImageIcon;

/**
 *
 * @author Kris Derril Siregar
 */
public enum DigimonSpecies {
    //Nama , bV, bS,bR,bA,Strata,next evolution,proto evolution
	//untuk digimon dewasa maka next evolution diisi sama bentuk sendiri
    //untuk digimon playable, base stats next evolutionnya bakal ditambahin ke stat waktu evo (mungkin)

    /**Digimon playable*/
    Gnommon(70,50,40,30,Strata.Baby,"Moriamon","Gnommon","/DigimonAdventure/Graphics/Gnommon GS.gif"),
	Moriamon(0,5,5,0,Strata.Child,"Gaiamon","Gnommon","/DigimonAdventure/Graphics/Moriamon GS.gif"),
	Gaiamon(0,10,10,0,Strata.Adult,"Gaiamon","Moriamon","/DigimonAdventure/Graphics/Gaiamon GS.gif"),
	Nymphmon(100,40,40,40,Strata.Baby,"Atlanmon","Nymphmon","/DigimonAdventure/Graphics/Nymphmon GS.gif"),
    Atlanmon(10,0,5,0,Strata.Child,"Oceamon","Nymphmon","/DigimonAdventure/Graphics/Atlanmon GS.gif"),
    Oceamon(20,0,10,0,Strata.Adult,"Oceamon","Atlanmon","/DigimonAdventure/Graphics/Oceamon GS.gif"),
	Fayrmon(50,30,20,50,Strata.Baby,"Seyfermon","Fayrmon","/DigimonAdventure/Graphics/Fayrmon GS.gif"),
    Seyfermon(0,0,0,10,Strata.Child,"Celestiamon","Fayrmon","/DigimonAdventure/Graphics/Seyfermon GS.gif"),
	Celestiamon(0,0,0,20,Strata.Adult,"Celestiamon","Seyfermon","/DigimonAdventure/Graphics/Celestiamon GS.gif"),

    /**Digimon Playable V2, SANGAT imbalance, buat cheat*/
    Linker_I(200,80,80,70,Strata.Baby,"Linker_II","Linker_I","/DigimonAdventure/Graphics/Linker.gif"),
    Linker_II(20,0,10,0,Strata.Child,"Linker_EX","Linker_I","/DigimonAdventure/Graphics/Linker.gif"),
    Linker_EX(40,0,20,0,Strata.Adult,"Linker_EX","Linker_II","/DigimonAdventure/Graphics/Linker.gif"),
    Purger_I(140,100,80,50,Strata.Baby,"Purger_II","Purger_I","/DigimonAdventure/Graphics/Purger.gif"),
    Purger_II(0,10,10,0,Strata.Child,"Purger_EX","Purger_I","/DigimonAdventure/Graphics/Purger.gif"),
    Purger_EX(0,20,20,0,Strata.Adult,"Purger_EX","Purger_II","/DigimonAdventure/Graphics/Purger.gif"),
    Overseer_I(100,60,40,100,Strata.Baby,"Overseer_II","Overseer_I","/DigimonAdventure/Graphics/Overseer.gif"),
    Overseer_II(0,10,0,10,Strata.Child,"Overseer_EX","Overseer_I","/DigimonAdventure/Graphics/Overseer.gif"),
    Overseer_EX(0,20,0,20,Strata.Adult,"Overseer_EX","Overseer_II","/DigimonAdventure/Graphics/Overseer.gif"),

    /**Digimon Boss, kayaknya masih rada imbalance*/
    Azramon(140,100,80,40,Strata.Adult,"Azramon","","/DigimonAdventure/Graphics/Azramon.gif"),
    Charademon(100,60,40,70,Strata.Adult,"Charademon","","/DigimonAdventure/Graphics/Charademon.gif"),
    DarkMirudramon(200,80,80,55,Strata.Adult,"Mirudramon","","/DigimonAdventure/Graphics/Mirudramon.gif"),
    
    /**Digimon Baby Darat*/
	Koromon(30,25,15,20,Strata.Baby,"Agumon","Koromomon","/DigimonAdventure/Graphics/koromon.gif"),
	Tsunomon(30,25,15,20,Strata.Baby,"Gabumon","Tsunomon","/DigimonAdventure/Graphics/tsunomon.gif"),
	Dynamon(30,25,15,20,Strata.Baby,"Veemon","Dynamon","/DigimonAdventure/Graphics/dynamon.gif"),
	Shinamon(30,25,15,20,Strata.Baby,"Kotemon","Shinamon","/DigimonAdventure/Graphics/shinamon.gif"),
	Kitsumon(30,25,15,20,Strata.Baby,"Renamon","Kitsumon","/DigimonAdventure/Graphics/kitsumon.gif"),
	Teddymon(30,25,15,20,Strata.Baby,"Kumamon","Teddymon","/DigimonAdventure/Graphics/teddymon.gif"),
	Licmon(30,25,15,20,Strata.Baby,"Armadillomon","Licmon","/DigimonAdventure/Graphics/licmon.gif"),
	Upamon(30,25,15,20,Strata.Baby,"Salamon","Upamon","/DigimonAdventure/Graphics/upamon.gif"),
	Legiomon(30,25,15,20,Strata.Baby,"Guilmon","Legiomon","/DigimonAdventure/Graphics/legiomon.gif"),
	Vemmon(30,25,15,20,Strata.Baby,"Impmon","Vemmon","/DigimonAdventure/Graphics/vemmon.gif"),
	Tanemon(30,25,15,20,Strata.Baby,"Palmon","Tanemon","/DigimonAdventure/Graphics/tanemon.gif"),
	Sarumon(30,25,15,20,Strata.Baby,"Monmon","Sarumon","/DigimonAdventure/Graphics/sarumon.gif"),
	/**Digimon Baby Air*/
	Goumon(40,20,15,20,Strata.Baby,"Gomamon","Goumon","/DigimonAdventure/Graphics/goumon.gif"),
	Heramon(40,20,15,20,Strata.Baby,"Coelamon","Heramon","/DigimonAdventure/Graphics/heramon.gif"),
	Finmon(40,20,15,20,Strata.Baby,"Dolphmon","Finmon","/DigimonAdventure/Graphics/finmon.gif"),
	Pearlmon(40,20,15,20,Strata.Baby,"Clampmon","Pearlmon","/DigimonAdventure/Graphics/pearlmon.gif"),
	Lulumon(40,20,15,20,Strata.Baby,"Nemomon","Lulumon","/DigimonAdventure/Graphics/lulumon.gif"),
	Gugumon(40,20,15,20,Strata.Baby,"Geromon","Gugumon","/DigimonAdventure/Graphics/gugumon.gif"),
	Gagamon(40,20,15,20,Strata.Baby,"Otamamon","Gagamon","/DigimonAdventure/Graphics/gagamon.gif"),
	Gunsomon(40,20,15,20,Strata.Baby,"Keromon","Gunsomon","/DigimonAdventure/Graphics/gunsomon.gif"),
	Craymon(40,20,15,20,Strata.Baby,"Glaymon","Craymon","/DigimonAdventure/Graphics/craymon.gif"),
	Gillmon(40,20,15,20,Strata.Baby,"Caramon","Gillmon","/DigimonAdventure/Graphics/gillmon.gif"),
	Sporamon(40,20,15,20,Strata.Baby,"Anemon","Sporamon","/DigimonAdventure/Graphics/sporamon.gif"),
	Submon(40,20,15,20,Strata.Baby,"Marimon","Submon","/DigimonAdventure/Graphics/submon.gif"),
	/**Digimon Baby Udara*/
	Tokomon(20,20,10,30,Strata.Baby,"Patamon","Tokomon","/DigimonAdventure/Graphics/tokomon.gif"),
	Kabumon(20,20,10,30,Strata.Baby,"Tentomon","Kabumon","/DigimonAdventure/Graphics/kabumon.gif"),
	Torimon(20,20,10,30,Strata.Baby,"Biyomon","Torimon","/DigimonAdventure/Graphics/torimon.gif"),
	Niwamon(20,20,10,30,Strata.Baby,"Hawkmon","Niwamon","/DigimonAdventure/Graphics/niwamon.gif"),
	Ajimon(20,20,10,30,Strata.Baby,"Terriermon","Ajimon","/DigimonAdventure/Graphics/ajimon.gif"),
	Demimon(20,20,10,30,Strata.Baby,"Elfmon","Demimon","/DigimonAdventure/Graphics/demimon.gif"),
	Pupamon(20,20,10,30,Strata.Baby,"Kunemon","Pupamon","/DigimonAdventure/Graphics/pupamon.gif"),
	Larvamon(20,20,10,30,Strata.Baby,"Wormon","Larvamon","/DigimonAdventure/Graphics/larvamon.gif"),
	Doumon(20,20,10,30,Strata.Baby,"Demidevimon","Doumon","/DigimonAdventure/Graphics/doumon.gif"),
	Kurumon(20,20,10,30,Strata.Baby,"Tailmon","Kurumon","/DigimonAdventure/Graphics/kurumon.gif"),
	Motomon(20,20,10,30,Strata.Baby,"Lalamon","Motomon","/DigimonAdventure/Graphics/motomon.gif"),
	Miyumon(20,20,10,30,Strata.Baby,"Shutumon","Miyumon","/DigimonAdventure/Graphics/miyumon.gif"),

    /**Digimon Child Darat*/
	Agumon(30,30,20,20,Strata.Child,"Greymon","Koromon","/DigimonAdventure/Graphics/agumon.gif"),
	Gabumon(30,30,20,20,Strata.Child,"Garurumon","Tsunomon","/DigimonAdventure/Graphics/gabumon.gif"),
	Veemon(30,30,20,20,Strata.Child,"XVeemon","Dynamon","/DigimonAdventure/Graphics/veemon.gif"),
	Kotemon(30,30,20,20,Strata.Child,"Dinohumon","Shinamon","/DigimonAdventure/Graphics/kotemon.gif"),
	Renamon(30,30,20,20,Strata.Child,"Kyuubimon","Kitsumon","/DigimonAdventure/Graphics/renamon.gif"),
	Kumamon(30,30,20,20,Strata.Child,"Grizzmon","Teddymon","/DigimonAdventure/Graphics/kumamon.gif"),
	Armadillomon(30,30,20,20,Strata.Child,"Ankylomon","Licmon","/DigimonAdventure/Graphics/armadillomon.gif"),
	Salamon(30,30,20,20,Strata.Child,"Gatomon","Upamon","/DigimonAdventure/Graphics/salamon.gif"),
	Guilmon(30,30,20,20,Strata.Child,"Growlmon","Legiomon","/DigimonAdventure/Graphics/guilmon.gif"),
	Impmon(30,30,20,20,Strata.Child,"Daemon","Vemmon","/DigimonAdventure/Graphics/impmon.gif"),
	Palmon(30,30,20,20,Strata.Child,"Togemon","Tanemon","/DigimonAdventure/Graphics/palmon.gif"),
	Monmon(30,30,20,20,Strata.Child,"Hookmon","Sarumon","/DigimonAdventure/Graphics/monmon.gif"),
	/**Digimon Child Air*/
	Gomamon(50,20,20,22,Strata.Child,"Ikkakumon","Goumon","/DigimonAdventure/Graphics/gomamon.gif"),
	Coelamon(50,20,20,22,Strata.Child,"Whalemon","Heramon","/DigimonAdventure/Graphics/coelamon.gif"),
	Dolphmon(50,20,20,22,Strata.Child,"Sharkmon","Finmon","/DigimonAdventure/Graphics/dolphmon.gif"),
	Clampmon(50,20,20,22,Strata.Child,"Octomon","Pearlmon","/DigimonAdventure/Graphics/clampmon.gif"),
	Nemomon(50,20,20,22,Strata.Child,"Gesomon","Lulumon","/DigimonAdventure/Graphics/nemomon.gif"),
	Geromon(50,20,20,22,Strata.Child,"MarineDevimon","Gugumon","/DigimonAdventure/Graphics/geromon.gif"),
	Otamamon(50,20,20,22,Strata.Child,"Gekomon","Gagamon","/DigimonAdventure/Graphics/otamamon.gif"),
	Keromon(50,20,20,22,Strata.Child,"Gradmon","Gunsomon","/DigimonAdventure/Graphics/keromon.gif"),
	Glaymon(50,20,20,22,Strata.Child,"Scorpiomon","Craymon","/DigimonAdventure/Graphics/glaymon.gif"),
	Caramon(50,20,20,22,Strata.Child,"Tortomon","Gillmon","/DigimonAdventure/Graphics/caramon.gif"),
	Anemon(50,20,20,22,Strata.Child,"Medusamon","Sporamon","/DigimonAdventure/Graphics/anemon.gif"),
	Marimon(50,20,20,22,Strata.Child,"Submarimon","Submon","/DigimonAdventure/Graphics/marimon.gif"),
	/**Digimon Child Udara*/
	Patamon(25,20,10,40,Strata.Child,"Angemon","Tokomon","/DigimonAdventure/Graphics/patamon.gif"),
	Tentomon(25,20,10,40,Strata.Child,"Kabuterimon","Kabumon","/DigimonAdventure/Graphics/tentomon.gif"),
	Biyomon(25,20,10,40,Strata.Child,"Birdramon","Torimon","/DigimonAdventure/Graphics/biyomon.gif"),
	Hawkmon(25,20,10,40,Strata.Child,"Aquillamon","Niwamon","/DigimonAdventure/Graphics/hawkmon.gif"),
	Terriermon(25,20,10,40,Strata.Child,"Gargomon","Ajimon","/DigimonAdventure/Graphics/terriermon.gif"),
	Elfmon(25,20,10,40,Strata.Child,"Fairymon","Demimon","/DigimonAdventure/Graphics/elfmon.gif"),
	Kunemon(25,20,10,40,Strata.Child,"Kuwagamon","Pupamon","/DigimonAdventure/Graphics/kunemon.gif"),
	Wormon(25,20,10,40,Strata.Child,"Stingmon","Larvamon","/DigimonAdventure/Graphics/wormon.gif"),
	Demidevimon(25,20,10,40,Strata.Child,"Devimon","Doumon","/DigimonAdventure/Graphics/demidevimon.gif"),
	Tailmon(25,20,10,40,Strata.Child,"Angewomon","Kurumon","/DigimonAdventure/Graphics/tailmon.gif"),
	Lalamon(25,20,10,40,Strata.Child,"Piximon","Motomon","/DigimonAdventure/Graphics/lalamon.gif"),
	Shutumon(25,20,10,40,Strata.Child,"Zephyrmon","Miyumon","/DigimonAdventure/Graphics/shutumon.gif"),
	/**Digimon Adult Darat*/
	Greymon(60,60,40,35,Strata.Adult,"Greymon","Agumon","/DigimonAdventure/Graphics/greymon.gif"),
	Garurumon(60,60,40,35,Strata.Adult,"Garurumon","Gabumon","/DigimonAdventure/Graphics/garurumon.gif"),
	XVeemon(60,60,40,35,Strata.Adult,"XVeemon","Veemon","/DigimonAdventure/Graphics/XVeemon.gif"), //Nama dia diganti soalnya ga boleh pake karakter -
	Dinohumon(60,60,40,35,Strata.Adult,"Dinohumon","Kotemon","/DigimonAdventure/Graphics/dinohumon.gif"),
	Kyuubimon(60,60,40,35,Strata.Adult,"Kyuubimon","Renamon","/DigimonAdventure/Graphics/kyuubimon.gif"),
	Grizzmon(60,60,40,35,Strata.Adult,"Grizzmon","Kumamon","/DigimonAdventure/Graphics/grizzmon.gif"),
	Ankylomon(60,60,40,35,Strata.Adult,"Ankylomon","Armadillomon","/DigimonAdventure/Graphics/ankylomon.gif"),
	Gatomon(60,60,40,35,Strata.Adult,"Gatomon","Salamon","/DigimonAdventure/Graphics/gatomon.gif"),
	Growlmon(60,60,40,35,Strata.Adult,"Growlmon","Guilmon","/DigimonAdventure/Graphics/growlmon.gif"),
	Daemon(60,60,40,35,Strata.Adult,"Daemon","Impmon","/DigimonAdventure/Graphics/daemon.gif"),
	Togemon(60,60,40,35,Strata.Adult,"Togemon","Palmon","/DigimonAdventure/Graphics/togemon.gif"),
	Hookmon(60,60,40,35,Strata.Adult,"Hookmon","Monmon","/DigimonAdventure/Graphics/hookmon.gif"),
	/**Digimon Adult Air*/
	Ikkakumon(80,45,40,40,Strata.Adult,"Ikkakumon","Gomamon","/DigimonAdventure/Graphics/ikkakumon.gif"),
	Whalemon(80,45,40,40,Strata.Adult,"Whalemon","Coelamon","/DigimonAdventure/Graphics/whalemon.gif"),
	Sharkmon(80,45,40,40,Strata.Adult,"Sharkmon","Dolphmon","/DigimonAdventure/Graphics/sharkmon.gif"),
	Octomon(80,45,40,40,Strata.Adult,"Octomon","Clampmon","/DigimonAdventure/Graphics/octomon.gif"),
	Gesomon(80,45,40,40,Strata.Adult,"Gesomon","Nemomon","/DigimonAdventure/Graphics/gesomon.gif"),
	MarineDevimon(80,45,40,40,Strata.Adult,"MarineDevimon","Geromon","/DigimonAdventure/Graphics/marinedevimon.gif"),
	Gekomon(80,45,40,40,Strata.Adult,"Gekomon","Otamamon","/DigimonAdventure/Graphics/gekomon.gif"),
	Gradmon(80,45,40,40,Strata.Adult,"Gradmon","Keromon","/DigimonAdventure/Graphics/gradmon.gif"),
	Scorpiomon(80,45,40,40,Strata.Adult,"Scorpiomon","Glaymon","/DigimonAdventure/Graphics/scorpiomon.gif"),
	Tortomon(80,45,40,40,Strata.Adult,"Tortomon","Caramon","/DigimonAdventure/Graphics/tortomon.gif"),
	Medusamon(80,45,40,40,Strata.Adult,"Medusamon","Anemon","/DigimonAdventure/Graphics/medusamon.gif"),
	Submarimon(80,45,40,40,Strata.Adult,"Submarimon","Marimon","/DigimonAdventure/Graphics/submarimon.gif"),
	/**Digimon Adult Udara*/
	Angemon(50,40,25,60,Strata.Adult,"Angemon","Patamon","/DigimonAdventure/Graphics/angemon.gif"),
	Kabuterimon(50,40,25,60,Strata.Adult,"Kabuterimon","Tentomon","/DigimonAdventure/Graphics/kabuterimon.gif"),
	Birdramon(50,40,25,60,Strata.Adult,"Birdramon","Biyomon","/DigimonAdventure/Graphics/birdramon.gif"),
	Aquillamon(50,40,25,60,Strata.Adult,"Aquillamon","Hawkmon","/DigimonAdventure/Graphics/aquillamon.gif"),
	Gargomon(50,40,25,60,Strata.Adult,"Gargomon","Terriermon","/DigimonAdventure/Graphics/gargomon.gif"),
	Fairymon(50,40,25,60,Strata.Adult,"Fairymon","Elfmon","/DigimonAdventure/Graphics/fairymon.gif"),
	Kuwagamon(50,40,25,60,Strata.Adult,"Kuwagamon","Kunemon","/DigimonAdventure/Graphics/kuwagamon.gif"),
	Stingmon(50,40,25,60,Strata.Adult,"Stingmon","Wormon","/DigimonAdventure/Graphics/stingmon.gif"),
	Devimon(50,40,25,60,Strata.Adult,"Devimon","Demidevimon","/DigimonAdventure/Graphics/devimon.gif"),
	Angewomon(50,40,25,60,Strata.Adult,"Angewomon","Tailmon","/DigimonAdventure/Graphics/angewomon.gif"),
	Piximon(50,40,25,60,Strata.Adult,"Piximon","Lalamon","/DigimonAdventure/Graphics/piximon.gif"),
	Zephyrmon(50,40,25,60,Strata.Adult,"Zephyrmon","Shutumon","/DigimonAdventure/Graphics/zephyrmon.gif");

	private String evolveTo;
	private String evolveFrom;
	private int bV;
	private int bS;
	private int bR;
	private int bA;
    private String imageLoc;
    private Strata strata;

    public static int Boss1 = 9;
    public static int Boss2 = 10;
    public static int Boss3 = 11;

	DigimonSpecies (int bV,int bS,int bR,int bA,Strata strata,String evolveTo,String evolveFrom,String imageLoc){
		this.evolveTo = evolveTo;
		this.evolveFrom = evolveFrom;
		this.bV = bV;
		this.bS = bS;
		this.bR = bR;
		this.bA = bA;
        this.strata = strata;
        this.imageLoc = imageLoc;
	}

	public String getNextEvolution() {
		return evolveTo;
	}
	public String getBeforeEvolution(){
		return evolveFrom;
	}
	public int getBaseVit(){
		return bV;
	}
	public int getBaseStr(){
		return bS;
	}
	public int getBaseRes(){
		return bR;
	}
	public int getBaseAgi(){
		return bA;
	}
    public String getImageLocation(){
        return imageLoc;
    }
    public Strata getStrata(){
        return strata;
    }
    public static void main(String [] args){
        for(DigimonSpecies p : DigimonSpecies.class.getEnumConstants()){
            System.out.print(p.imageLoc);
        }
    }
}
